<p>  要建立符合标准的网页，DOCTYPE声明是必不可少的关键组成部分；文档不定义DOCTYPE，浏览器将无法获知HTML或XHTML文档的类型，那就会按照自己的方式来解析文档，也就是混乱模式或者怪异模式。通俗的说就是不声明文档类型，浏览器不知道该用什么标准来解析你的文档，那他只能用自己的方式来解析了。为了能让我们的网页能在多个浏览器上正常的呈现给用户，通常我们都要给出一个正确的文档声明的。文档类型定义在HTML文档的第一行，在html标签之前，而且没有关闭符。声明不是一个 HTML 标签；它是用来告知 Web 浏览器页面使用了哪种 HTML 版本。（记得刚开始学习html的时候自己还要给他加个关闭符，现在想来。。。呵呵）。</p>
<h4 id="一、HTML4.01文档过渡定义类型">  一、HTML4.01文档过渡定义类型</h4><p>  此类型定义的文档可以使用HTML中的标签与元素包括一些不被W3C推荐的标签（如：font），不可以使用框架集：</p>
<pre><code class="language-html"><span class="code-block"><span class="hljs-meta">&lt;!DOCTYPE <span class="hljs-keyword">HTML</span> <span class="hljs-keyword">PUBLIC</span> <span class="hljs-string">"-//W3C//DTD HTML 4.01 Transitional//EN"</span>
<span class="hljs-string">"http://www.w3.org/TR/html4/loose.dtd"</span>&gt;</span></span>
</code><span class="copy-button">复制代码</span></pre>
<h4 id="二、HTML4.01文档严格定义类型">  二、HTML4.01文档严格定义类型</h4><p>  此类型定义的文档可以使用HTML中的标签与元素，不能包含不被W3C推荐的标签（如：font），不可以使用框架集：</p>
<pre><code class="language-html"><span class="code-block"><span class="hljs-meta">&lt;!DOCTYPE <span class="hljs-keyword">HTML</span> <span class="hljs-keyword">PUBLIC</span> <span class="hljs-string">"-//W3C//DTD HTML 4.01//EN"</span> 
<span class="hljs-string">"http://www.w3.org/TR/html4/strict.dtd"</span>&gt;</span></span>
</code><span class="copy-button">复制代码</span></pre>
<h4 id="三、HTML4.01文档框架定义类型">  三、HTML4.01文档框架定义类型</h4><p>  此类型等同于HTML4.01文档过渡定义类型，但可以使用框架集：</p>
<pre><code class="language-html"><span class="code-block"><span class="hljs-meta">&lt;!DOCTYPE <span class="hljs-keyword">HTML</span> <span class="hljs-keyword">PUBLIC</span> <span class="hljs-string">"-//W3C//DTD HTML 4.01 Frameset//EN"</span> 
<span class="hljs-string">"http://www.w3.org/TR/html4/frameset.dtd"</span>&gt;</span></span>
</code><span class="copy-button">复制代码</span></pre>
<h4 id="四、XHTML1.0文档过渡定义类型">  四、XHTML1.0文档过渡定义类型</h4><p>  此类型定义的文档可以使用HTML中的标签与元素包括一些不被W3C推荐的标签（如：font），不可以使用框架集：</p>
<pre><code class="language-html"><span class="code-block"><span class="hljs-meta">&lt;!DOCTYPE <span class="hljs-keyword">html</span> <span class="hljs-keyword">PUBLIC</span> <span class="hljs-string">"-//W3C//DTD XHTML 1.0 Transitional//EN"</span> 
<span class="hljs-string">"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"</span>&gt;</span></span>
</code><span class="copy-button">复制代码</span></pre>
<h4 id="五、XHTML1.0文档严格定义类型">  五、XHTML1.0文档严格定义类型</h4><p>  此类型定义的文档只可以使用HTML中定义的标签与元素，不能包含不被W3C推荐的标签（如：font），不可以使用框架集：</p>
<pre><code class="language-html"><span class="code-block"><span class="hljs-meta">&lt;!DOCTYPE <span class="hljs-keyword">html</span> <span class="hljs-keyword">PUBLIC</span> <span class="hljs-string">"-//W3C//DTD XHTML 1.0 Strict//EN"</span> 
<span class="hljs-string">"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"</span>&gt;</span></span>
</code><span class="copy-button">复制代码</span></pre>
<h4 id="六、XHTML1.0文档框架定义类型">  六、XHTML1.0文档框架定义类型</h4><p>  等同于XHTML1.0文档过渡定义类型，但可以使用框架集：</p>
<pre><code class="language-html"><span class="code-block"><span class="hljs-meta">&lt;!DOCTYPE <span class="hljs-keyword">html</span> <span class="hljs-keyword">PUBLIC</span> <span class="hljs-string">"-//W3C//DTD XHTML 1.0 Frameset//EN"</span> 
<span class="hljs-string">"http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd"</span>&gt;</span></span>
</code><span class="copy-button">复制代码</span></pre>
<h4 id="七、XHTML1.1文档严格定义类型">  七、XHTML1.1文档严格定义类型</h4><p>  等同于XHTML1.0文档过渡定义类型：</p>
<pre><code class="language-html"><span class="code-block"><span class="hljs-meta">&lt;!DOCTYPE <span class="hljs-keyword">html</span> <span class="hljs-keyword">PUBLIC</span> <span class="hljs-string">"-//W3C//DTD XHTML 1.1//EN"</span> 
<span class="hljs-string">"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"</span>&gt;</span></span>
</code><span class="copy-button">复制代码</span></pre>
<h4 id="八、HTML5文档类型：">  八、HTML5文档类型：</h4><pre><code class="language-html"><span class="code-block"><span class="hljs-meta">&lt;!DOCTYPE <span class="hljs-keyword">html</span>&gt;</span></span>
</code><span class="copy-button">复制代码</span></pre>
<p>  声明方式对大小写不敏感，但是如果写错了也是不能正确解析的。第八种声明方式是html5的声明方式，使用这种声明方式，浏览器会按照html5的标准解析文档。据说按照html5的声明方式声明文档能够兼容现在所有的浏览器，包括ie6。不过除非我们的客户特地要求兼容那些古董浏览器，不然一般只需兼容到ie7、8的样子。这样我们完全可以使用html5的声明方式声明文档，然后使用降级处理的方式就可以了。据说只要布局布得好的话，不写css hack也可以兼容所有的浏览器，不过现在我们开发PC的网页一般只需兼容到ie9的样子( →_→ )，当然在使用html5新的标签的时候，如果需要兼容古董级的ie7、8，你需要在低版本浏览器的时候先创建相应的标签。</p>
